package com.woniuxy.enjoylife.service;

import com.woniuxy.enjoylife.entity.Role;
import com.woniuxy.enjoylife.entity.Suggest;
import com.woniuxy.enjoylife.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.enjoylife.entity.dto.*;
import com.woniuxy.enjoylife.utils.PageResult;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author teamEnjoyLife75
 * @since 2021-01-18
 */
public interface UserService extends IService<User> {
    public List<User> findAll();
    //通过用户的用户名和密码，找到用户
    public User findByAccountPwd(String account,String pwd);
    //用户修改密码
    public int updatePwd(int id,String pwd);
    //用户根据验证码修改密码
    public Boolean updataByEmail(String pwd,String code,String email);
    //用户修改昵称
    public int updateAccount(int id,String account);
    //用户修改头像
    public int updateHead(int id,String img);
    //查询用户基本信息
    UserDto findDetail(int id);

    //用户投诉
    public int userSuggest(Suggest suggest);
    //通过用户account找到用户
    public boolean findByAccount(String account);
    //通过邮箱找到用户
    public boolean findByEmail(String email);
    //用户注册
    public boolean register(User user,String code,String role);
    //给邮箱发送验证码邮件
    public boolean sendCode(String email,int type);

    //检查物业账户注册是否可用
    public boolean checkVillage(String account);
    //进行物业注册
    public boolean registerProperty(PropertyDto propertyDto);

    //平台用户管理信息
    public PageResult<UserInfoDto> usersInfo(int type, int size, int currentPage);
    //平台用户状态切换
    public boolean userSwitch(User user);
    //平台用户信息更改
    public boolean userInfoChange(UserInfoDto userInfoDto);
    //平台商家申请列表
    public List<User> findApply();

    //查询用户头像和昵称
    public HeadAccountDto getDetail(int id);
    //平台同意商家注册
    public List<User> agreeApply(int id);
    //通过用户主id去用户角色中间表查询用户及其对应角色
    public UserRoleMenusDto findUserRoleMenusById(int id);
    //修改头像
    public Boolean changeImage(String image,int id);
    //修改密码
    public Boolean updateByPwd(int id,String oldpwd,String newpwd);



    //通过用户名查询id
    int selectUserId(String account);

    List<Role> selectUserRole(Integer id);
    UserRecentsDto selectPublishRecent(int id);
    //查询动态作者
    User findAuthor(int rid);

}
